package cn.xopencode.recordservice.rpc.pdroom;

import cn.xopencode.common.framework.vo.CommonResult;
import cn.xopencode.common.framework.vo.PageResult;
import cn.xopencode.recordservice.rpc.pdroom.dto.PowerDistributionRoomCreateDTO;
import cn.xopencode.recordservice.rpc.pdroom.dto.PowerDistributionRoomPageDTO;
import cn.xopencode.recordservice.rpc.pdroom.dto.PowerDistributionRoomQueryDTO;
import cn.xopencode.recordservice.rpc.pdroom.dto.PowerDistributionRoomUpdateDTO;
import cn.xopencode.recordservice.rpc.pdroom.vo.PowerDistributionRoomPageVO;
import cn.xopencode.recordservice.rpc.pdroom.vo.PowerDistributionRoomUpdateVO;
import cn.xopencode.recordservice.rpc.pdroom.vo.PowerDistributionRoomVO;

import java.util.List;

/**
 * 配电室管理  Rpc 接口
 */
public interface PowerDistributionRoomRpc {

    /**
     * 创建配电室信息
     *
     * @param
     * @return
     */
    CommonResult<Integer> createPowerDistributionRoom(PowerDistributionRoomCreateDTO createDTO);

    /**
     * 更新配电室信息
     *
     * @param updateDTO
     * @return
     */
    CommonResult<Integer> updatePowerDistributionRoom(PowerDistributionRoomUpdateDTO updateDTO);

    /**
     * 获得配电室列表分页
     *
     * @param pageDTO
     * @return
     */
    CommonResult<PageResult<PowerDistributionRoomPageVO>> pagePowerDistributionRoom(PowerDistributionRoomPageDTO pageDTO);

    /**
     * 根据配电室名字模糊查询
     * @param roomName
     * @return
     */
    CommonResult<List<PowerDistributionRoomVO>> getPowerDistributionRoomList(String roomName);

    /**
     * 根据id获取配电室详细
     * @param id
     * @return
     */
    CommonResult<PowerDistributionRoomUpdateVO> getPowerDistributionRoomById(String id);

    /**
     * 改变状态
     * @param roomId
     * @param flag
     * @return
     */
    CommonResult<Integer> changeStatus(String roomId, Boolean flag);

    /**
     * 根据使用表单和编号，获取对应的线路名称
     * @param queryDTO
     * @return
     */
    CommonResult<String> getLineNameByParam(PowerDistributionRoomQueryDTO queryDTO);

    /**
     * 根据巡检记录类型获取配电室名称
     * @param recordType
     * @return
     */
    CommonResult<List<PowerDistributionRoomVO>> getPdroomNameListByType(Integer recordType);
}
